// pages/index/index.js
import request from '../../utils/request'
Page({

  /**
   * 页面的初始数据
   */
  data: {
    banners:[], // 轮播图数据
    personalized:[], // 推荐歌单
    rankingList:[] // 排行榜
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad:async function (options) {
    /* 
    性能优化：
      请求并发
    这里使用async 和await发送请求，需要等前面的结果返回之后才发送下一个
    如果想要并发效果，一次发送多个请求，这里可以使用.then来处理，它不会阻塞后面代码的执行
      图片懒加载
      
    */
    // 获取轮播图数据
    request("/banner",{type:2}).then(
      (res)=>{
        this.setData({
          banners : res.banners
        })
      }
    )
     
      // 推荐歌曲
    request("/personalized").then(
      (res)=>{
        this.setData({
          personalized : res.result
        })
      }
    )
  
    // 排行榜
       /* 
      1. 需要根据idx的值获取对应的数据
      2. idx的取值范围是0-20， 我们需要0-4
      3. 需要发送5次请求，所以这里使用while循环
      4. 返回的数据很多，其中很多是我们不需要的，所以返回的数据需要二次处理，只留下我们需要的数据
      
      */
    const attr = []
    let index = 0
    while(index < 5){
      let topList = await request('/top/list', {idx: index++});
      // 处理请求回来的数据，只留下标题和遍历的数据
      const topListItem = {
        name:topList.playlist.name,
        id:topList.playlist.id,
        tracks:topList.playlist.tracks.slice(0,3)
      }
      attr.push(topListItem)
      // 将里面的数据进行二次处理
   /*    const list = attr.tracks.map(item=>{
        return item.al
      }) */
      this.setData({
        rankingList:attr
      })
      
      // console.log('rankingList',attr);
    }


  },
// 点击跳转到每日推荐
jump(){
  wx.navigateTo({
    url:'/pages/songs/recommendSong/recommendSong'
  })
},
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})